package exercise.基础练习;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 资源限制
 * 时间限制：1.0s   内存限制：512.0MB
 * 问题描述
 * 　　123321是一个非常特殊的数，它从左边读和从右边读是一样的。
 * 　　输入一个正整数n， 编程求所有这样的五位和六位十进制数，满足各位数字之和等于n 。
 * 输入格式
 * 　　输入一行，包含一个正整数n。
 * 输出格式
 * 　　按从小到大的顺序输出满足条件的整数，每个整数占一行。
 * 样例输入
 * 52
 * 样例输出
 * 899998
 * 989989
 * 998899
 * 数据规模和约定
 * 　　1<=n<=54。
 */
public class B09_特殊回文数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = sc.nextInt();
        ArrayList<StringBuilder> result_list = solution(sum);
        for (StringBuilder result : result_list) {
            System.out.println(result);
        }
    }

    private static ArrayList<StringBuilder> solution(int sum) {
        ArrayList<StringBuilder> results = new ArrayList<>();//存储所有结果

        for (int i = 0; i <= 9; i++) {
            for (int j = 0; j <= 9; j++) {
                for (int k = 0; k <= 9; k++) {
                    if ((i + j + k) * 2 == sum) {//六位数的结果
                        results.add(new StringBuilder("" + i + j + k + k + j + i));
                    }
                    if (i * 2 + j * 2 + k == sum) {//五位数的结果
                        results.add(new StringBuilder("" + i + j + k + j + i));
                    }
                }
            }
        }
        return results;//返回所有结果
    }
}
